package com.risen.project.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.risen.project.common.Response;
import com.risen.project.domain.ProjectManage;
import com.risen.project.domain.dto.ProjectManageDTO;
import com.risen.project.domain.vo.ProjectManageVO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 项目管理信息接口
 */
public interface ProjectManageService extends IService<ProjectManage> {

    /**
     * 数据上报
     *
     * @param baseProjIds 项目IDS 该参数未空的话 则全部上报 不为空则只上报指定的项目信息
     * @return 上报成功条数 上报失败条数
     */
    Map<String,Integer> sendProjectManage(String baseProjIds);

    /**
     * 添加修改项目信息
     *
     * @param data 项目信息
     * @return 影响条数
     */
    Integer insertProjectManage(ProjectManageDTO data);

    /**
     * 更新项目信息
     *
     * @param data 项目信息
     * @return 影响条数
     */
    Integer updateProjectManage(ProjectManageDTO data);

    /**
     * 通过表格导入项目信息
     *
     * @param file 表格文件
     * @return 导出状态
     */
    String importProjectManageByExcel(MultipartFile file);

    /**
     * 导出项目西悉尼
     *
     * @param baseProjName  项目名称
     * @param baseApplyDept 申请单位
     * @param createdAt     申请时间
     * @param reportStatus  上报状态 0-未上报 1-已上报
     */
    void exportProjectManage(String baseProjName, String baseApplyDept, String createdAt,
                             Integer reportStatus, HttpServletResponse response);

    /**
     * 获取项目信息列表
     * @param baseProjName 项目名称
     * @param baseApplyDept 申请单位
     * @param createdAt 申请时间
     * @param reportStatus 上报状态 0-未上报 1-已上报
     * @param page 页
     * @param size 大小
     * @return ProjectManageVO
     */
    Response<List<ProjectManageVO>> getProjectList(String baseProjName, String baseApplyDept, String createdAt,
                                                   Integer reportStatus, int page, int size);
}









